package com.aaa.web.service.impl.statisticsserviceimpl;

import com.aaa.web.dao.istatisticsdao.IStatisticsDao;
import com.aaa.web.service.istatisticsservice.IStatisticsService;
import com.aaa.web.systemconst.ISystemConst;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * @description: 数据统计
 * @author: lianghuige
 * @create: 2018-12-25 13:14
 **/
import java.util.*;

@Service
public class StatisticsServiceImpl implements IStatisticsService {
    @Autowired
    private IStatisticsDao statisticsDao;

    /**
     * 判断查询条件
     * 获取电瓶车销售信息
     * 电瓶车零件销售信息
     * 修车信息
     * 电瓶更换信息
     * @param year
     * @return
     */
    @Override
    public Map findBatterySalesInfo(String year, String condition,String startTime,String endTime) {

        Map<String, Object> map = new HashMap<>();
        //电瓶车销售的月份/季度/分类/门店/站点
        ArrayList bxdata = new ArrayList();
        //电瓶车销售的数量
        ArrayList bnum = new ArrayList();


        //电瓶车零件销售的月份/季度/分类/门店/站点
        ArrayList bcxdata = new ArrayList();
        //电瓶车零件销售的数量
        ArrayList bcnum = new ArrayList();


        //修车信息的月份/季度/分类/门店/站点
        ArrayList rxdata = new ArrayList();
        //修车的数量
        ArrayList rnum = new ArrayList();


        //更换电瓶信息的月份/季度/分类/门店/站点
        ArrayList cbxdata = new ArrayList();
        //更换电瓶信息的数量
        ArrayList cbnum = new ArrayList();


        //电瓶车销量信息
        List<Map> bdata =new ArrayList();
        //电瓶车零件销量信息
        List<Map> bcdata=new ArrayList();
        //修车信息
        List<Map> rdata=new ArrayList();
        //更换电瓶信息
        List<Map> cbdata=new ArrayList();


            if(ISystemConst.MONTH_CODE.equals(condition)){
                //按月查询
                    //电瓶车销量信息---一段时间内的
                    bdata = statisticsDao.findBatterySalesInfo(year,startTime,endTime);
                    //电瓶车零件（goodstype_id=3）销量
                    bcdata = statisticsDao.findBatteryComponetSalesInfo(year, startTime, endTime);
                    //修车信息
                    rdata=statisticsDao.findRepairInfo(year, startTime, endTime);
                    //电瓶更换信息
                    cbdata=statisticsDao.findChangeBatteryInfo(year, startTime, endTime);
                    //按月查询，总的
            }else if(ISystemConst.QUATER_CODE.equals(condition)){
                //按季度查询
                    //电瓶车销量信息
                    bdata = statisticsDao.findBatterySalesInfoByQuater(year,startTime,endTime);
                    //电瓶车零件（goodstype_id=3）销量
                    bcdata = statisticsDao.findBatteryComponetSalesInfoByQuater(year, startTime, endTime);
                    //修车信息
                    rdata=statisticsDao.findRepairInfoByQuater(year, startTime, endTime);
                    //电瓶更换信息
                    cbdata=statisticsDao.findChangeBatteryInfoByQuater(year, startTime, endTime);
            }else if(ISystemConst.TYPE_CODE.equals(condition)) {
                //按类别查询
                    //电瓶车销量信息--按种类
                    bdata = statisticsDao.findBatterySalesInfoByType(year,startTime,endTime);
                    //电瓶车零件--按种类
                    bcdata = statisticsDao.findBatteryComponetSalesInfoByType(year, startTime, endTime);
            }else if(ISystemConst.SCHOOL_CODE.equals(condition)) {
                //按门店查询
                    //电瓶车销量信息--按门店
                    bdata = statisticsDao.findBatterySalesInfoBySchoolId(year,startTime,endTime);
                    //电瓶车零件--按门店
                    bcdata = statisticsDao.findBatteryComponetSalesInfoBySchoolId(year, startTime, endTime);
                    //修车信息--按门店
                    rdata=statisticsDao.findRepairInfoBySchoolId(year, startTime, endTime);
                    //电瓶更换信息--按门店
                    cbdata=statisticsDao.findChangeBatteryInfoBySchoolId(year, startTime, endTime);
            }else if (ISystemConst.PLACE_CODE.equals(condition)){
                //按站点
                //电瓶更换信息--按门店
                cbdata=statisticsDao.findChangeBatteryInfoByPlace(year, startTime, endTime);

            }
        //遍历电瓶车销量信息
        for (int i = 0; i < bdata.size(); i++) {
            Object xdata = bdata.get(i).get("xdata");
            bxdata.add(xdata);

            int number =Integer.parseInt(bdata.get(i).get("num").toString());
            bnum.add(number);
        }
        //将获取的数组信息放置map中--电瓶车
        map.put("bxdata",bxdata);
        map.put("bnum",bnum);

        //遍历电瓶车零件销量信息
        for (int i=0;i<bcdata.size();i++){
            Object xdata = bcdata.get(i).get("xdata");
            bcxdata.add(xdata);

            int number =  Integer.parseInt(bcdata.get(i).get("num").toString());
            bcnum.add(number);
        }
        //将获取的数组信息放置map中--电瓶车零件
        map.put("bcxdata",bcxdata);
        map.put("bcnum",bcnum);

        //遍历修车信息
        for (int i=0;i<rdata.size();i++){
            Object xdata = rdata.get(i).get("xdata");
            rxdata.add(xdata);
            int number =  Integer.parseInt(rdata.get(i).get("num").toString());
            rnum.add(number);
        }
        //将获取的数组信息放置map中--电瓶车零件
        map.put("rxdata",rxdata);
        map.put("rnum",rnum);

        //遍历电瓶更换信息
        for (int i=0;i<cbdata.size();i++){
            Object xdata = cbdata.get(i).get("xdata");
            cbxdata.add(xdata);
            int number =  Integer.parseInt(cbdata.get(i).get("num").toString());
            cbnum.add(number);
        }
        //将获取的数组信息放置map中--电瓶更换
        map.put("cbxdata",cbxdata);
        map.put("cbnum",cbnum);

        return map;
    }
}
